/*
 * Copyright (C) 2016 Avionic Design GmbH
 * Meike Vocke <meike.vocke@avionic-design.de>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This test data for the CUDA debayer kernel includes an input example with
 * the calculated result of each color channel. The calculation is described in:
 * https://courses.cs.washington.edu/courses/cse467/08au/pdfs/lectures/09-Demosaicing.pdf
 */

#ifndef CUDA_KERNEL_TEST_DATA_H
#define CUDA_KERNEL_TEST_DATA_H

const uint32_t width = 16;
const uint32_t height = 16;

const uint8_t input_data[width * height] = {
	0,  0,  2,  0,  4,  0,  6,  0,  0,  8,  0, 10,  0, 12,  0, 14,
	0,  0,  0,  0,  0,  0,  0,  0,  8,  0, 10,  0, 12,  0, 14,  0,
	2,  0,  4,  0,  6,  0,  8,  0,  0, 10,  0, 12,  0, 14,  0, 16,
	0,  0,  0,  0,  0,  0,  0,  0, 10,  0, 12,  0, 14,  0, 16,  0,
	4,  0,  6,  0,  8,  0, 10,  0,  0, 12,  0, 14,  0, 16,  0, 18,
	0,  0,  0,  0,  0,  0,  0,  0, 12,  0, 14,  0, 16,  0, 18,  0,
	6,  0,  8,  0, 10,  0, 12,  0,  0, 14,  0, 16,  0, 18,  0, 20,
	0,  0,  0,  0,  0,  0,  0,  0, 14,  0, 16,  0, 18,  0, 20,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 16, 16, 18, 18, 20, 20, 22, 22,
	0,  8,  0, 10,  0, 12,  0, 14, 16, 16, 18, 18, 20, 20, 22, 22,
	0,  0,  0,  0,  0,  0,  0,  0, 18, 18, 20, 20, 22, 22, 24, 24,
	0, 10,  0, 12,  0, 14,  0, 16, 18, 18, 20, 20, 22, 22, 24, 24,
	0,  0,  0,  0,  0,  0,  0,  0, 20, 20, 22, 22, 24, 24, 26, 26,
	0, 12,  0, 14,  0, 16,  0, 18, 20, 20, 22, 22, 24, 24, 26, 26,
	0,  0,  0,  0,  0,  0,  0,  0, 22, 22, 24, 24, 26, 26, 28, 28,
	0, 14,  0, 16,  0, 18,  0, 20, 22, 22, 24, 24, 26, 26, 28, 28
};

const uint8_t output_data_red[width * height] = {
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  2,  3,  4,  5,  6,  7,  3,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  3,  4,  5,  6,  7,  8,  4,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  4,  5,  6,  7,  8,  9,  4,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  5,  6,  7,  8,  9, 10,  5,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  6,  7,  8,  9, 10, 11,  5,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  7,  8,  9, 10, 11, 12,  6,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  3,  4,  4,  5,  5,  6,  7,  8,  8,  9,  9, 10, 10, 11,  0,
	0,  0,  0,  0,  0,  0,  0,  8, 16, 17, 18, 19, 20, 21, 22,  0,
	0,  0,  0,  0,  0,  0,  0,  8, 17, 18, 19, 20, 21, 22, 23,  0,
	0,  0,  0,  0,  0,  0,  0,  9, 18, 19, 20, 21, 22, 23, 24,  0,
	0,  0,  0,  0,  0,  0,  0,  9, 19, 20, 21, 22, 23, 24, 25,  0,
	0,  0,  0,  0,  0,  0,  0, 10, 20, 21, 22, 23, 24, 25, 26,  0,
	0,  0,  0,  0,  0,  0,  0, 10, 21, 22, 23, 24, 25, 26, 27,  0,
	0,  0,  0,  0,  0,  0,  0, 11, 22, 23, 24, 25, 26, 27, 28,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};

const uint8_t output_data_green[width * height] = {
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  2,  8,  9, 10, 11, 12, 13, 14,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  7, 10, 11, 12, 13, 14, 15,  0,
	0,  0,  0,  0,  0,  0,  0,  2, 10, 11, 12, 13, 14, 15, 16,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  8, 12, 13, 14, 15, 16, 17,  0,
	0,  0,  0,  0,  0,  0,  0,  3, 12, 13, 14, 15, 16, 17, 18,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 10, 14, 15, 16, 17, 18, 19,  0,
	0,  0,  0,  0,  0,  0,  0,  3, 14, 15, 16, 17, 18, 19, 20,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 11, 16, 17, 18, 19, 20, 21,  0,
	0,  0,  0,  0,  0,  0,  0,  4, 16, 17, 18, 19, 20, 21, 22,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 13, 18, 19, 20, 21, 22, 23,  0,
	0,  0,  0,  0,  0,  0,  0,  4, 18, 19, 20, 21, 22, 23, 24,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 14, 20, 21, 22, 23, 24, 25,  0,
	0,  0,  0,  0,  0,  0,  0,  5, 20, 21, 22, 23, 24, 25, 26,  0,
	0,  0,  0,  0,  0,  0,  0,  0, 16, 22, 23, 24, 25, 26, 27,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};

const uint8_t output_data_blue[width * height] = {
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
	0,  4,  4,  5,  5,  6,  6,  7,  7,  8,  8,  9,  9, 10, 10,  0,
	0,  8,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,  0,
	0,  9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,  0,
	0, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,  0,
	0, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,  0,
	0, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,  0,
	0, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,  0,
	0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
};

#endif /* CUDA_KERNEL_TEST_DATA */
